For purposes of improving reliability, high-performance applications may checkpoint their data. In this manner, the generation of a checkpoint typically involves storing data indicative of a memory image of an application process at a particular time. The checkpoint may be a full checkpoint, in which data indicative of entire memory image is stored or an incremental checkpoint, which represents the changes to the image after the last checkpoint.
Checkpoint mechanisms may be classified as being application transparent or application explicit. Transparent checkpoint mechanisms do not involve modification to the application program code, wherein explicit checkpointing modifies the program code.